package com.atguigu.gmall.payment.service;

import com.atguigu.gmall.payment.process.PayHandler;
import com.atguigu.gmall.payment.process.factory.PaymentFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @author: atguigu
 * @create: 2023-03-22 11:14
 */
@Service
public class PaymentService {

    /**
     * 获取支付对象工厂
     *
     * @param orderId
     * @param payType
     */
    @Autowired
    private PaymentFactory paymentFactory;

    /**
     * 处理各种支付方式
     *
     * @param orderId
     * @param payType
     */
    public void pay(Long orderId, String payType) {
        //todo 以下代码违背开闭原则 解决方式:适配器模式/策略模式
        //if ("weixinPay".equals(payType)) {
        //    //调用微信支付相关api
        //} else if ("aliPay".equals(payType)) {
        //    //调用支付宝支付相关api
        //} else if ("jdPay".equals(payType)) {
        //    //调用京东支付相关api
        //}
        PayHandler payHandler = paymentFactory.getPayHandler(payType);
        payHandler.createPayHtml(orderId);
        payHandler.youhui();
    }
}
